Mobile Hardware Wake-Up Sequence
Visualizing the process from sleep to active call
SYSTEM LOG
Select a Contact to Call
About This Project
This project is a 3D interactive simulation designed to visualize the complex hardware and network processes that occur when making a mobile phone call.
- Explore Hardware Wake-Up: See how internal components like the CPU, Modem, and Telephony Service activate in sequence when a call is received.
- Visualize Signal Flow: Watch animated signals travel from a user's phone, to the nearest cell tower, and across the network to the recipient's device.
- Interactive 3D Environment: Navigate the scene in 3D space. Drag and drop phones to see how distance affects signal paths. Click on hardware components during an animation to learn more about their function.
- Full System Control: Use the built-in terminal to manage contacts, initiate calls, send messages, power devices on/off, and control the simulation environment.
- Dynamic Effects: Toggle day/night cycles and weather effects to see a more dynamic environment.
- Technology: Built with Three.js for 3D rendering, GSAP for powerful animations, and Tone.js for dynamic sound effects.
Why does the phone ring instantly when someone calls?
If the processor is not active, then how does the phone use any hardware to respond to the call while it is in a rest or idle state? Doesn’t the processor need to be active for anything to work?
When a mobile phone is in idle mode, most of its components, including the CPU and kernel, are in a low-power state to save battery. Only the modem remains powered enough to listen for incoming signals from the network. When an incoming call is detected, the modem sends an interrupt to the system, causing the kernel and CPU to wake up. Telephony services are then activated to process the call and notify the user by ringing the phone. This efficient handoff ensures quick response to incoming calls while maintaining low power consumption when the device is not in use.
This simulation visualizes that exact wake-up process. Developed by I. Sanjay Raghav Reddy.
Instructions & User Manual
Basic Interaction
- Navigate: Click and drag the background to rotate the camera. Use the mouse wheel to zoom in and out.
- Move Phones: Click and drag any of the phone models to reposition them in the scene.
- View Hardware: Use the 'Hardware View' button to see inside the phones. During a call animation, click on glowing components to get information about them in the system log.
- Initiate Calls: Click the 'Contacts' button and select a person to call them from your phone.
Voice Assistant
- Use the 'Voice Assistant' button to issue commands verbally.
- Say
"explain project"to hear a detailed, story-like explanation of how a phone call works. A control bar will appear allowing you to change languages, pause/play, and adjust the speed of the narration.
Terminal Commands
Open the terminal using the 'Terminal' button. Type commands and press Enter. Use Up/Down arrows to cycle through command history. Type man to see this list in the terminal.
ls contacts: Lists all available contact names.history: Displays a log of all calls made in the session.ll contacts: Summarizes call counts for each contact.vi <name>: Shows detailed information for a specific contact. e.g.,vi Charanadd <name>: Starts the process to add a new contact and their phone to the scene. e.g.,add Priyaedit <name>: Starts the process to edit a contact's name and number. e.g.,edit Charanedit password: Allows you to change the system password for remote operations.del <name>: Deletes a contact and removes their phone. e.g.,del Maheshgroup add <groupName> <name1> <name2>...: Creates a new contact group. e.g.,group add family Charan Tarungroup del <groupName>: Deletes a contact group.group list: Shows all created groups.group show <groupName>: Lists members of a specific group. e.g.,group show familypoweron <name|group|all>: Powers on a specific phone, group, or all phones. e.g.,poweron familypoweroff <name|group|all>: Powers off a specific phone, group, or all phones. e.g.,poweroff familyreboot <name|group|all>: Simulates rebooting a phone, group, or all phones. e.g.,reboot familycall <name|group>...: Initiates a call to one or more people or a group. e.g.,call familycall <caller> to <callee>: Remotely makes one contact call another (requires password). e.g.,call Charan to Akshaytext <name> <message>: Sends a simulated text message. e.g.,text Charan hello there!browse: Simulates your phone browsing the web and downloading data.ping <name>: Sends a network ping to a contact's phone to check connectivity. e.g.,ping Akshayscan: Scans the area for all powered-on devices.route <name>: Traces the network path from your phone to a contact's phone. e.g.,route Akshayspeed <slow|normal|fast>: Changes the animation speed. e.g.,speed fastbroadcast <group|all> <message>: Sends a message to a group or all phones. e.g.,broadcast family meeting in 5network/status: Shows the current status of your phone's main hardware components.clear: Clears all messages from the terminal screen.reset: Resets the entire simulation to its initial state.